using System.Collections.Generic;

namespace PokerStar.Core
{
    public class Dealer
    {
        private DeckOfCards _deck = new DeckOfCards();

        public void ButtonMove(Player another)
        {
            //throw new NotImplementedException();
        }

        public void Shuffle()
        {
            _deck.Reset();
        }

        public string PrintCards()
        {
            return _deck.ToString();
        }

        public Card GiveCard(Player player)
        {
            var card = _deck.Next();
            player.Accept(card);
            return card;
        }

        public Card[] PlayFlop()
        {
            // ban one card
            _deck.Next();
            return new[] { _deck.Next(), _deck.Next(), _deck.Next() };
        }

        public Card PlayTurn()
        {
            // ban one card
            _deck.Next();
            return _deck.Next();
        }

        public Card PlayRiver()
        {
            return PlayTurn();
        }
    }

    public class Stake
    {
    }

    public interface ITurn
    {
        ICollection<Card> Cards { get; }
    }

    public class Pot
    {
    }
}